@@ -1,139 +0,0 @@ |
||
| 1 |
-{
|
|
| 2 |
- "website-name" : "Portfolio Go", |
|
| 3 |
- "content" : [ |
|
| 4 |
- {
|
|
| 5 |
- "title" : "Desenhos", |
|
| 6 |
- "id" : "1", |
|
| 7 |
- "slides" : [ |
|
| 8 |
- "content/images/triptico.jpg", |
|
| 9 |
- "content/images/A3.jpg", |
|
| 10 |
- "content/images/escultura_01.jpg", |
|
| 11 |
- "content/images/trifonia-01.png" |
|
| 12 |
- ] |
|
| 13 |
- }, |
|
| 14 |
- {
|
|
| 15 |
- "title" : "Esculturas", |
|
| 16 |
- "id" : "2", |
|
| 17 |
- "slides" : [ |
|
| 18 |
- "content/images/escultura_01.jpg", |
|
| 19 |
- "content/images/trifonia-01.png" |
|
| 20 |
- ] |
|
| 21 |
- }, |
|
| 22 |
- {
|
|
| 23 |
- "title" : "Poemas", |
|
| 24 |
- "id" : "3", |
|
| 25 |
- "slides" : [ |
|
| 26 |
- "content/images/trifonia-01.png", |
|
| 27 |
- "content/images/triptico.jpg", |
|
| 28 |
- ] |
|
| 29 |
- }, |
|
| 30 |
- {
|
|
| 31 |
- "title" : "Filmes", |
|
| 32 |
- "id" : "4", |
|
| 33 |
- "slides" : [ |
|
| 34 |
- "content/images/trifonia-01.png", |
|
| 35 |
- "content/images/triptico.jpg", |
|
| 36 |
- ] |
|
| 37 |
- }, |
|
| 38 |
- {
|
|
| 39 |
- "title" : "Fotos Contexto Humano", |
|
| 40 |
- "id" : "5", |
|
| 41 |
- "slides" : [ |
|
| 42 |
- "content/images/trifonia-01.png", |
|
| 43 |
- "content/images/triptico.jpg", |
|
| 44 |
- ] |
|
| 45 |
- }, |
|
| 46 |
- {
|
|
| 47 |
- "title" : "Textos Críticos", |
|
| 48 |
- "id" : "6", |
|
| 49 |
- "slides" : [ |
|
| 50 |
- "content/images/trifonia-01.png", |
|
| 51 |
- "content/images/triptico.jpg", |
|
| 52 |
- ] |
|
| 53 |
- }, |
|
| 54 |
- {
|
|
| 55 |
- "title" : "Currículo", |
|
| 56 |
- "id" : "7", |
|
| 57 |
- "slides" : [ |
|
| 58 |
- "content/images/trifonia-01.png", |
|
| 59 |
- "content/images/triptico.jpg", |
|
| 60 |
- ] |
|
| 61 |
- } |
|
| 62 |
- ], |
|
| 63 |
- "navigation" : [ |
|
| 64 |
- {
|
|
| 65 |
- "title" : "Desenhos", |
|
| 66 |
- "type" : "sub-nav", |
|
| 67 |
- "id" : "101", |
|
| 68 |
- "navigation" : [ |
|
| 69 |
- {
|
|
| 70 |
- "title" : "Caligramas", |
|
| 71 |
- "type" : "content", |
|
| 72 |
- "id" : "1" |
|
| 73 |
- }, |
|
| 74 |
- {
|
|
| 75 |
- "title" : "Figuras", |
|
| 76 |
- "type" : "content", |
|
| 77 |
- "id" : "2" |
|
| 78 |
- }, |
|
| 79 |
- {
|
|
| 80 |
- "title" : "Cadernos", |
|
| 81 |
- "type" : "content", |
|
| 82 |
- "id" : "3" |
|
| 83 |
- } |
|
| 84 |
- ] |
|
| 85 |
- }, |
|
| 86 |
- {
|
|
| 87 |
- "title" : "Esculturas", |
|
| 88 |
- "type" : "sub-nav", |
|
| 89 |
- "id" : "102", |
|
| 90 |
- "navigation" : [ |
|
| 91 |
- {
|
|
| 92 |
- "title" : "Carvão & Tule", |
|
| 93 |
- "type" : "content", |
|
| 94 |
- "id" : "1" |
|
| 95 |
- }, |
|
| 96 |
- {
|
|
| 97 |
- "title" : "Sono (Vidros)", |
|
| 98 |
- "type" : "content", |
|
| 99 |
- "id" : "2" |
|
| 100 |
- }, |
|
| 101 |
- {
|
|
| 102 |
- "title" : "Relevos", |
|
| 103 |
- "type" : "content", |
|
| 104 |
- "id" : "3" |
|
| 105 |
- }, |
|
| 106 |
- {
|
|
| 107 |
- "title" : "Cut-outs", |
|
| 108 |
- "type" : "content", |
|
| 109 |
- "id" : "3" |
|
| 110 |
- } |
|
| 111 |
- ] |
|
| 112 |
- }, |
|
| 113 |
- {
|
|
| 114 |
- "title" : "Poemas", |
|
| 115 |
- "type" : "content", |
|
| 116 |
- "id" : "5" |
|
| 117 |
- }, |
|
| 118 |
- {
|
|
| 119 |
- "title" : "Filmes", |
|
| 120 |
- "type" : "content", |
|
| 121 |
- "id" : "6" |
|
| 122 |
- }, |
|
| 123 |
- {
|
|
| 124 |
- "title" : "Fotos", |
|
| 125 |
- "type" : "content", |
|
| 126 |
- "id" : "7" |
|
| 127 |
- }, |
|
| 128 |
- {
|
|
| 129 |
- "title" : "Textos", |
|
| 130 |
- "type" : "content", |
|
| 131 |
- "id" : "8" |
|
| 132 |
- }, |
|
| 133 |
- {
|
|
| 134 |
- "title" : "Currículo", |
|
| 135 |
- "type" : "content", |
|
| 136 |
- "id" : "9" |
|
| 137 |
- } |
|
| 138 |
- ] |
|
| 139 |
-} |
@@ -10,40 +10,56 @@ |
||
| 10 | 10 |
|
| 11 | 11 |
<!-- bower:js --> |
| 12 | 12 |
|
| 13 |
- <script src="../bower_components/angular/angular.js"></script> |
|
| 13 |
+ <script src="../bower_components/angular/angular.js"></script> |
|
| 14 |
+ <script src="../bower_components/angular-animate/angular-animate.js"></script> |
|
| 15 |
+ <script src="../bower_components/angular-cookies/angular-cookies.js"></script> |
|
| 16 |
+ <script src="../bower_components/angular-resource/angular-resource.js"></script> |
|
| 17 |
+ <script src="../bower_components/angular-route/angular-route.js"></script> |
|
| 18 |
+ <script src="../bower_components/angular-sanitize/angular-sanitize.js"></script> |
|
| 19 |
+ <script src="../bower_components/angular-touch/angular-touch.js"></script> |
|
| 14 | 20 |
<script src="../bower_components/famous-angular/dist/famous-angular.js"></script> |
| 15 | 21 |
<script src="../bower_components/famous/dist/famous-global.js"></script> |
| 22 |
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.16.1/TweenMax.min.js"></script> |
|
| 23 |
+ <script src="../bower_components/ngFx/dist/ngFx.min.js"></script> |
|
| 16 | 24 |
<script src="http://code.createjs.com/createjs-2013.12.12.min.js"></script> |
| 17 | 25 |
|
| 18 | 26 |
<!-- endbower --> |
| 19 | 27 |
|
| 20 | 28 |
<script src="scripts/app.js"></script> |
| 29 |
+ <script src="scripts/controllers/index.js"></script> |
|
| 30 |
+ <script src="scripts/controllers/background.js"></script> |
|
| 31 |
+ <script src="scripts/controllers/navigation.js"></script> |
|
| 32 |
+ <script src="scripts/controllers/slideshow.js"></script> |
|
| 21 | 33 |
|
| 22 | 34 |
</head> |
| 23 | 35 |
<body ng-app="goApp"> |
| 24 |
- <fa-app ng-controller='indexController' id="app1"> |
|
| 25 |
- |
|
| 26 |
- |
|
| 27 |
- |
|
| 28 |
- <fa-modifier fa-size="[true, true]" fa-origin="[0,0]" fa-translate="[0, 0, 0]"> |
|
| 29 |
- <fa-video-surface |
|
| 30 |
- fa-video-url="content/videos/bg_1.mov" |
|
| 31 |
- class="video" |
|
| 32 |
- fa-options="{autoplay:true, setAttributes: 'loop'}" >
|
|
| 33 |
- </fa-video-surface> |
|
| 34 |
- </fa-modifier> |
|
| 35 |
- </fa-app> |
|
| 36 |
- <fa-app ng-controller='indexController' id="app2"> |
|
| 37 |
- <fa-modifier fa-size="[true, true]" fa-origin="[0,0]" fa-translate="[0, 0, 0]" fa-index="1"> |
|
| 38 |
- <ui-view style="position: absolute; z-index: 2;"> |
|
| 39 |
- <fa-modifier fa-size="[100, 100]" fa-translate="translation(t.get())" > |
|
| 40 |
- <fa-surface fa-background-color="'#FA5C4F'" fa-color="'red'" > |
|
| 41 |
- {{data.message}}
|
|
| 42 |
- </fa-surface> |
|
| 43 |
- </fa-modifier> |
|
| 44 |
- </fa-modifier> |
|
| 45 |
- </ui-view> |
|
| 46 |
- </fa-modifier> |
|
| 47 |
- </fa-app> |
|
| 36 |
+ |
|
| 37 |
+ <div ng-controller='BackgroundController' class="layer-background"> |
|
| 38 |
+ <fa-app id="app1"> |
|
| 39 |
+ <fa-render-node fa-node="backgroundView" id="render"></fa-render-node> |
|
| 40 |
+ </fa-app> |
|
| 41 |
+ </div> |
|
| 42 |
+ |
|
| 43 |
+ <div ng-controller='NavigationController' class="layer-menu"> |
|
| 44 |
+ <ul class="nav-menu"> |
|
| 45 |
+ <li ng-repeat="item in navigation" class='fx-fade-normal fx-speed-1000'> |
|
| 46 |
+ <a ng-click="btnNavclick($index)" class="btn-menu">{{item.title}}</a>
|
|
| 47 |
+ </li> |
|
| 48 |
+ </ul> |
|
| 49 |
+ <ul class="nav-menu submenu"> |
|
| 50 |
+ <li ng-repeat="item in subNavigation" class='fx-fade-normal fx-speed-200'> |
|
| 51 |
+ <a ng-click="btnSubNavclick($index)" class="btn-menu">{{item.title}}</a>
|
|
| 52 |
+ </li> |
|
| 53 |
+ </ul> |
|
| 54 |
+ <ul class="nav-menu submenu"> |
|
| 55 |
+ <li ng-repeat="item in sub2Navigation" class='fx-fade-normal fx-speed-200'> |
|
| 56 |
+ <a ng-click="btnSub2Navclick($index)" class="btn-menu">{{item.title}}</a>
|
|
| 57 |
+ </li> |
|
| 58 |
+ </ul> |
|
| 59 |
+ </div> |
|
| 60 |
+ |
|
| 61 |
+ <div ng-view></div> |
|
| 62 |
+ |
|
| 63 |
+ |
|
| 48 | 64 |
</body> |
| 49 | 65 |
</html> |
@@ -1,54 +1,48 @@ |
||
| 1 |
-var goApp = angular.module('goApp', ['famous.angular']);
|
|
| 2 |
- |
|
| 3 |
-var controllers = {};
|
|
| 4 |
- controllers.indexController = function($scope, $famous, $timeline) {
|
|
| 5 |
- $scope.data = {message: "Hello"};
|
|
| 6 |
- |
|
| 7 |
- var Transitionable = $famous['famous/transitions/Transitionable']; |
|
| 8 |
- var Easing = $famous['famous/transitions/Easing']; |
|
| 9 |
- |
|
| 10 |
- $scope.t = new Transitionable(0); |
|
| 11 |
- |
|
| 12 |
- $scope.translation = $timeline([ |
|
| 13 |
- [0, [100, 100, 100], Easing.inOutQuad], |
|
| 14 |
- [0.25, [400, 200, 100], Easing.inOutQuad], |
|
| 15 |
- [0.5, [300, 300, 100], Easing.inOutQuad], |
|
| 16 |
- [0.75, [200, 500, 100], Easing.inOutQuad], |
|
| 17 |
- [1, [100, 100, 100], Easing.inOutQuad], |
|
| 18 |
- ]); |
|
| 19 |
- |
|
| 20 |
- $scope.startAnimations = function(){
|
|
| 21 |
- $scope.t.delay((1000), function(){ // we will delay each animation based on index
|
|
| 22 |
- $scope.t.set(1, {duration: 3400}, function(){
|
|
| 23 |
- |
|
| 24 |
- |
|
| 25 |
- |
|
| 26 |
- }); |
|
| 27 |
- }); |
|
| 28 |
- } |
|
| 29 |
- |
|
| 30 |
- var preload = new createjs.LoadQueue(); |
|
| 31 |
- preload.addEventListener("fileload", handleFileComplete);
|
|
| 32 |
- preload.loadFile('content/videos/bg_1.mov');
|
|
| 33 |
- function handleFileComplete(event) {
|
|
| 34 |
- console.log('File Loaded')
|
|
| 35 |
- $scope.startAnimations(); |
|
| 36 |
- |
|
| 37 |
- // Make the video loop |
|
| 38 |
- var video = $famous.find('.video')[0].renderNode; video.on('deploy', function(){
|
|
| 39 |
- var player = video._currTarget; |
|
| 40 |
- player.controls = true; |
|
| 41 |
- player.loop = true; |
|
| 42 |
- player.onprogress = console.log('video is downloading');
|
|
| 43 |
- }); |
|
| 44 |
- |
|
| 45 |
- } |
|
| 46 |
- |
|
| 47 |
- |
|
| 48 |
- |
|
| 49 |
- }; |
|
| 50 |
- |
|
| 51 |
- |
|
| 52 |
- |
|
| 53 |
- |
|
| 54 |
-goApp.controller(controllers); |
|
| 1 |
+'use strict'; |
|
| 2 |
+ |
|
| 3 |
+/** |
|
| 4 |
+ * @ngdoc overview |
|
| 5 |
+ * @name domainManagerApp |
|
| 6 |
+ * @description |
|
| 7 |
+ * # domainManagerApp |
|
| 8 |
+ * |
|
| 9 |
+ * Main module of the application. |
|
| 10 |
+ */ |
|
| 11 |
+angular |
|
| 12 |
+ .module('goApp', [
|
|
| 13 |
+ 'ngAnimate', |
|
| 14 |
+ 'ngCookies', |
|
| 15 |
+ 'ngResource', |
|
| 16 |
+ 'ngRoute', |
|
| 17 |
+ 'ngSanitize', |
|
| 18 |
+ 'ngTouch', |
|
| 19 |
+ 'famous.angular', |
|
| 20 |
+ 'ngFx', |
|
| 21 |
+ 'goApp.index', |
|
| 22 |
+ 'goApp.background', |
|
| 23 |
+ 'goApp.navigation', |
|
| 24 |
+ 'goApp.slideshow' |
|
| 25 |
+ ]) |
|
| 26 |
+ |
|
| 27 |
+ .config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
|
|
| 28 |
+ |
|
| 29 |
+ // Configs |
|
| 30 |
+ //Enable cross domain calls |
|
| 31 |
+ //$httpProvider.defaults.useXDomain = true; |
|
| 32 |
+ //Remove the header used to identify ajax call that would prevent CORS from working |
|
| 33 |
+ //delete $httpProvider.defaults.headers.common['X-Requested-With']; |
|
| 34 |
+ |
|
| 35 |
+ // Routes |
|
| 36 |
+ $routeProvider |
|
| 37 |
+ .when('/', {
|
|
| 38 |
+ templateUrl: 'views/index.html', |
|
| 39 |
+ controller: 'IndexController' |
|
| 40 |
+ }) |
|
| 41 |
+ .when('/:slideshowId', {
|
|
| 42 |
+ templateUrl: 'views/slideshow.html', |
|
| 43 |
+ controller: 'SlideshowController' |
|
| 44 |
+ }) |
|
| 45 |
+ .otherwise({
|
|
| 46 |
+ redirectTo: '/' |
|
| 47 |
+ }); |
|
| 48 |
+ }]) |
@@ -0,0 +1,43 @@ |
||
| 1 |
+'use strict'; |
|
| 2 |
+ |
|
| 3 |
+/** |
|
| 4 |
+ * @ngdoc function |
|
| 5 |
+ * @name domainManagerApp.controller:AboutCtrl |
|
| 6 |
+ * @description |
|
| 7 |
+ * # AboutCtrl |
|
| 8 |
+ * Controller of the domainManagerApp |
|
| 9 |
+ */ |
|
| 10 |
+angular.module('goApp.background', ['famous.angular'])
|
|
| 11 |
+ .controller('BackgroundController',['$scope', '$rootScope', '$famous', '$timeline', function ($scope, $rootScope, $famous, $timeline) {
|
|
| 12 |
+ |
|
| 13 |
+ var View = $famous['famous/core/View']; |
|
| 14 |
+ var Modifier = $famous['famous/core/Modifier']; |
|
| 15 |
+ var Surface = $famous['famous/core/Surface']; |
|
| 16 |
+ var Transform = $famous['famous/core/Transform']; |
|
| 17 |
+ var VideoSurface = $famous['famous/surfaces/VideoSurface']; |
|
| 18 |
+ |
|
| 19 |
+ $scope.backgroundView = new View(); |
|
| 20 |
+ |
|
| 21 |
+ var video = new VideoSurface({
|
|
| 22 |
+ size: [undefined, undefined], |
|
| 23 |
+ autoplay: true, |
|
| 24 |
+ src: "content/videos/bg_1.mov", |
|
| 25 |
+ classes: ['bg_video'], |
|
| 26 |
+ properties: {
|
|
| 27 |
+ zIndex: 1, |
|
| 28 |
+ } |
|
| 29 |
+ }); |
|
| 30 |
+ video.setAttributes({
|
|
| 31 |
+ loop: '' |
|
| 32 |
+ }); |
|
| 33 |
+ |
|
| 34 |
+ var videoModifier = new Modifier(); |
|
| 35 |
+ videoModifier.transformFrom(function(){
|
|
| 36 |
+ |
|
| 37 |
+ transform: Transform.translate(0, 0, 0) |
|
| 38 |
+ }); |
|
| 39 |
+ |
|
| 40 |
+ $scope.backgroundView.add(videoModifier).add(video); |
|
| 41 |
+ |
|
| 42 |
+ |
|
| 43 |
+ }]); |
@@ -0,0 +1,16 @@ |
||
| 1 |
+'use strict'; |
|
| 2 |
+ |
|
| 3 |
+/** |
|
| 4 |
+ * @ngdoc function |
|
| 5 |
+ * @name domainManagerApp.controller:AboutCtrl |
|
| 6 |
+ * @description |
|
| 7 |
+ * # AboutCtrl |
|
| 8 |
+ * Controller of the domainManagerApp |
|
| 9 |
+ */ |
|
| 10 |
+angular.module('goApp.index', ['famous.angular', 'ngFx', 'ngAnimate'])
|
|
| 11 |
+ .controller('IndexController',['$scope', '$rootScope', '$famous', '$timeline', function ($scope, $rootScope, $famous, $timeline) {
|
|
| 12 |
+ |
|
| 13 |
+ |
|
| 14 |
+ |
|
| 15 |
+ |
|
| 16 |
+ }]); |
@@ -0,0 +1,49 @@ |
||
| 1 |
+'use strict'; |
|
| 2 |
+ |
|
| 3 |
+/** |
|
| 4 |
+ * @ngdoc function |
|
| 5 |
+ * @name domainManagerApp.controller:AboutCtrl |
|
| 6 |
+ * @description |
|
| 7 |
+ * # AboutCtrl |
|
| 8 |
+ * Controller of the domainManagerApp |
|
| 9 |
+ */ |
|
| 10 |
+angular.module('goApp.navigation', ['famous.angular', 'ngRoute', 'ngFx', 'ngAnimate'])
|
|
| 11 |
+ .controller('NavigationController',['$scope', '$rootScope', '$famous', '$timeline', '$http', '$location', '$route', '$timeout', function ($scope, $rootScope, $famous, $timeline, $http, $location, $route, $timeout) {
|
|
| 12 |
+ |
|
| 13 |
+ $http({
|
|
| 14 |
+ method: 'GET', |
|
| 15 |
+ url: 'scripts/data.json' |
|
| 16 |
+ }).success(function(data) {
|
|
| 17 |
+ $timeout(function(){
|
|
| 18 |
+ $scope.navigation = data.navigation; |
|
| 19 |
+ },500); |
|
| 20 |
+ }); |
|
| 21 |
+ |
|
| 22 |
+ $scope.subNavigation = [] |
|
| 23 |
+ $scope.sub2Navigation = [] |
|
| 24 |
+ $scope.last_click = "" |
|
| 25 |
+ |
|
| 26 |
+ $scope.btnNavclick = function(index){
|
|
| 27 |
+ if($scope.navigation[index].link == 'submenu') {
|
|
| 28 |
+ if($scope.last_click != $scope.navigation[index].title){
|
|
| 29 |
+ console.log("Opening submenu: " + $scope.navigation[index].title)
|
|
| 30 |
+ $scope.subNavigation = $scope.navigation[index].submenu; |
|
| 31 |
+ } else if ($scope.last_click == $scope.navigation[index].title && $scope.subNavigation.length == 0) {
|
|
| 32 |
+ $scope.subNavigation = $scope.navigation[index].submenu; |
|
| 33 |
+ console.log("Opening submenu: " + $scope.navigation[index].title)
|
|
| 34 |
+ } else {
|
|
| 35 |
+ $scope.subNavigation = []; |
|
| 36 |
+ console.log("Closing submenu: " + $scope.navigation[index].title)
|
|
| 37 |
+ } |
|
| 38 |
+ $scope.last_click = $scope.navigation[index].title |
|
| 39 |
+ } else {
|
|
| 40 |
+ console.log("Redirecting to page " + $scope.navigation[index].link)
|
|
| 41 |
+ $location.path($scope.navigation[index].link); |
|
| 42 |
+ } |
|
| 43 |
+ } |
|
| 44 |
+ |
|
| 45 |
+ $scope.btnSubNavclick = function(index){
|
|
| 46 |
+ $scope.sub2Navigation = $scope.subNavigation[index].submenu; |
|
| 47 |
+ } |
|
| 48 |
+ |
|
| 49 |
+ }]); |
@@ -0,0 +1,54 @@ |
||
| 1 |
+'use strict'; |
|
| 2 |
+ |
|
| 3 |
+/** |
|
| 4 |
+ * @ngdoc function |
|
| 5 |
+ * @name domainManagerApp.controller:AboutCtrl |
|
| 6 |
+ * @description |
|
| 7 |
+ * # AboutCtrl |
|
| 8 |
+ * Controller of the domainManagerApp |
|
| 9 |
+ */ |
|
| 10 |
+angular.module('goApp.slideshow', ['ngFx', 'ngAnimate'])
|
|
| 11 |
+ .controller('SlideshowController',['$scope', '$rootScope', '$famous', '$timeline', '$location', '$route', '$timeout', function ($scope, $rootScope, $famous, $timeline, $location, $route, $timeout) {
|
|
| 12 |
+ |
|
| 13 |
+ $scope.data = {message: "Hello World"};
|
|
| 14 |
+ |
|
| 15 |
+ // FadeIn |
|
| 16 |
+ $timeout(function(){
|
|
| 17 |
+ $scope.showView = true; |
|
| 18 |
+ },100); |
|
| 19 |
+ |
|
| 20 |
+ $scope.fadeOut = function() {
|
|
| 21 |
+ $scope.showView = false; |
|
| 22 |
+ $timeout(function(){
|
|
| 23 |
+ $location.path("/");
|
|
| 24 |
+ },500); |
|
| 25 |
+ } |
|
| 26 |
+ |
|
| 27 |
+ |
|
| 28 |
+ // Moving Cube |
|
| 29 |
+ var Transitionable = $famous['famous/transitions/Transitionable']; |
|
| 30 |
+ var Easing = $famous['famous/transitions/Easing']; |
|
| 31 |
+ |
|
| 32 |
+ $scope.t = new Transitionable(0); |
|
| 33 |
+ |
|
| 34 |
+ $scope.translation = $timeline([ |
|
| 35 |
+ [0, [500, 400, 100], Easing.inOutQuad], |
|
| 36 |
+ [0.25, [400, 200, 100], Easing.inOutQuad], |
|
| 37 |
+ [0.5, [300, 300, 100], Easing.inOutQuad], |
|
| 38 |
+ [0.75, [200, 500, 100], Easing.inOutQuad], |
|
| 39 |
+ [1, [100, 100, 100], Easing.inOutQuad], |
|
| 40 |
+ ]); |
|
| 41 |
+ |
|
| 42 |
+ $scope.startAnimations = function(){
|
|
| 43 |
+ $scope.t.delay((1000), function(){ // we will delay each animation based on index
|
|
| 44 |
+ $scope.t.set(1, {duration: 3400}, function(){
|
|
| 45 |
+ // Animation Completion Callback |
|
| 46 |
+ }); |
|
| 47 |
+ }); |
|
| 48 |
+ } |
|
| 49 |
+ |
|
| 50 |
+ //$scope.startAnimations(); |
|
| 51 |
+ |
|
| 52 |
+ |
|
| 53 |
+ |
|
| 54 |
+ }]); |
@@ -0,0 +1,103 @@ |
||
| 1 |
+{
|
|
| 2 |
+ "website-name" : "Portfolio Go", |
|
| 3 |
+ "navigation" : |
|
| 4 |
+ [ |
|
| 5 |
+ {
|
|
| 6 |
+ "title" : "Desenhos", |
|
| 7 |
+ "link" : "submenu", |
|
| 8 |
+ "submenu" : |
|
| 9 |
+ [ |
|
| 10 |
+ {
|
|
| 11 |
+ "title" : "Caligramas", |
|
| 12 |
+ "link" : "#/caligramas" |
|
| 13 |
+ }, |
|
| 14 |
+ {
|
|
| 15 |
+ "title" : "Figuras", |
|
| 16 |
+ "link" : "#/figuras" |
|
| 17 |
+ }, |
|
| 18 |
+ {
|
|
| 19 |
+ "title" : "Cadernos", |
|
| 20 |
+ "link" : "submenu", |
|
| 21 |
+ "submenu" : |
|
| 22 |
+ [ |
|
| 23 |
+ {
|
|
| 24 |
+ "title" : "York Cathedral", |
|
| 25 |
+ "link" : "#/york-cathedral" |
|
| 26 |
+ }, |
|
| 27 |
+ {
|
|
| 28 |
+ "title" : "Bologramas", |
|
| 29 |
+ "link" : "#/bologramas" |
|
| 30 |
+ }, |
|
| 31 |
+ {
|
|
| 32 |
+ "title" : "Sarrafos & Garranchos", |
|
| 33 |
+ "link" : "#/sarrafos-e-garranchos" |
|
| 34 |
+ } |
|
| 35 |
+ ] |
|
| 36 |
+ } |
|
| 37 |
+ ] |
|
| 38 |
+ |
|
| 39 |
+ }, |
|
| 40 |
+ {
|
|
| 41 |
+ "title" : "Esculturas", |
|
| 42 |
+ "link" : "submenu", |
|
| 43 |
+ "submenu" : |
|
| 44 |
+ [ |
|
| 45 |
+ {
|
|
| 46 |
+ "title" : "Carvão & Tule", |
|
| 47 |
+ "link" : "#/carvao-e-tule" |
|
| 48 |
+ }, |
|
| 49 |
+ {
|
|
| 50 |
+ "title": "Sono (vidros)", |
|
| 51 |
+ "link" : "#/sono" |
|
| 52 |
+ }, |
|
| 53 |
+ {
|
|
| 54 |
+ "title" : "Relevos", |
|
| 55 |
+ "link" : "#/relevos" |
|
| 56 |
+ }, |
|
| 57 |
+ {
|
|
| 58 |
+ "title" : "cut-outs", |
|
| 59 |
+ "link" : "#/cut-outs" |
|
| 60 |
+ } |
|
| 61 |
+ ] |
|
| 62 |
+ }, |
|
| 63 |
+ {
|
|
| 64 |
+ "title" : "poemas", |
|
| 65 |
+ "link" : "#/poemas" |
|
| 66 |
+ }, |
|
| 67 |
+ {
|
|
| 68 |
+ "title" : "filmes", |
|
| 69 |
+ "link" : "submenu", |
|
| 70 |
+ "submenu" : |
|
| 71 |
+ [ |
|
| 72 |
+ {
|
|
| 73 |
+ "title" : "Trifonia", |
|
| 74 |
+ "link" : "#/trifonia" |
|
| 75 |
+ }, |
|
| 76 |
+ {
|
|
| 77 |
+ "title" : "Sonho contra-sono", |
|
| 78 |
+ "link" : "#sonho-contra-sono" |
|
| 79 |
+ }, |
|
| 80 |
+ {
|
|
| 81 |
+ "title" : "Animações", |
|
| 82 |
+ "link" : "#/animacoes" |
|
| 83 |
+ }, |
|
| 84 |
+ {
|
|
| 85 |
+ "title" : "Performances", |
|
| 86 |
+ "link" : "#/performances" |
|
| 87 |
+ } |
|
| 88 |
+ ] |
|
| 89 |
+ }, |
|
| 90 |
+ {
|
|
| 91 |
+ "title" : "Fotos Contexto Humano", |
|
| 92 |
+ "link" : "#/fotos-contexto-humano" |
|
| 93 |
+ }, |
|
| 94 |
+ {
|
|
| 95 |
+ "title" : "Textos Críticos", |
|
| 96 |
+ "link" : "#/textos-criticos" |
|
| 97 |
+ }, |
|
| 98 |
+ {
|
|
| 99 |
+ "title" : "Currículo", |
|
| 100 |
+ "link" : "/curriculo" |
|
| 101 |
+ } |
|
| 102 |
+ ] |
|
| 103 |
+} |
@@ -13,6 +13,51 @@ body {
|
||
| 13 | 13 |
backface-visibility: visible; |
| 14 | 14 |
} |
| 15 | 15 |
|
| 16 |
+/* Layers */ |
|
| 17 |
+.layer-background {
|
|
| 18 |
+ z-index: 1; |
|
| 19 |
+ position: absolute; |
|
| 20 |
+ top: 0; |
|
| 21 |
+ right: 0; |
|
| 22 |
+ bottom: 0; |
|
| 23 |
+ left: 0 |
|
| 24 |
+} |
|
| 25 |
+.layer-menu {
|
|
| 26 |
+ z-index: 2; |
|
| 27 |
+ position: absolute; |
|
| 28 |
+} |
|
| 29 |
+ng-view {
|
|
| 30 |
+ z-index: 4; |
|
| 31 |
+} |
|
| 32 |
+.layer-content {
|
|
| 33 |
+ z-index: 3; |
|
| 34 |
+ position: absolute; |
|
| 35 |
+ top: 0; |
|
| 36 |
+ right: 0; |
|
| 37 |
+ bottom: 0; |
|
| 38 |
+ left: 0; |
|
| 39 |
+ width: 100%; |
|
| 40 |
+ height: 100%; |
|
| 41 |
+ background-color: rgba(0,0,0,0.7); |
|
| 42 |
+} |
|
| 43 |
+ |
|
| 44 |
+.bg-dark { background-color: black;}
|
|
| 45 |
+ |
|
| 46 |
+/* Navigation */ |
|
| 47 |
+.nav-menu {
|
|
| 48 |
+ list-style: none; |
|
| 49 |
+ padding-left: 15px; |
|
| 50 |
+ float: left; |
|
| 51 |
+} |
|
| 52 |
+.nav-menu li {
|
|
| 53 |
+ padding-left: 0px; |
|
| 54 |
+} |
|
| 55 |
+ |
|
| 56 |
+.submenu {
|
|
| 57 |
+ float: left; |
|
| 58 |
+ padding-left: 5px; |
|
| 59 |
+} |
|
| 60 |
+ |
|
| 16 | 61 |
.btn-menu {
|
| 17 | 62 |
color: black; |
| 18 | 63 |
border: none; |
@@ -22,30 +67,30 @@ body {
|
||
| 22 | 67 |
font-family: Helvetica; |
| 23 | 68 |
text-align: left; |
| 24 | 69 |
font-weight: 600; |
| 25 |
- margin-left: 15px; |
|
| 26 |
- margin-right: 15px; |
|
| 70 |
+ margin-left: 0px; |
|
| 71 |
+ margin-right: 8px; |
|
| 27 | 72 |
margin-bottom: 15px; |
| 28 | 73 |
cursor: pointer; |
| 74 |
+ text-decoration: none; |
|
| 75 |
+ padding-top: 1px; |
|
| 29 | 76 |
} |
| 30 |
- |
|
| 31 | 77 |
.btn-menu:hover {
|
| 32 | 78 |
color: white; |
| 33 | 79 |
background-color: black; |
| 80 |
+ text-decoration: none; |
|
| 34 | 81 |
} |
| 35 |
- |
|
| 36 | 82 |
.btn-slideshow {
|
| 37 | 83 |
cursor: pointer; |
| 38 | 84 |
background-color: white; |
| 39 | 85 |
} |
| 40 |
- |
|
| 41 | 86 |
.btn-slideshow:hover {
|
| 42 | 87 |
background-color: #F2F2F2; |
| 43 | 88 |
color: red; |
| 44 | 89 |
} |
| 45 | 90 |
|
| 46 | 91 |
video {
|
| 47 |
- width: auto !important; |
|
| 48 | 92 |
height: 100% !important; |
| 93 |
+ width: auto !important; |
|
| 49 | 94 |
} |
| 50 | 95 |
|
| 51 | 96 |
fa-app {
|
@@ -55,3 +100,9 @@ fa-app {
|
||
| 55 | 100 |
bottom: 0; |
| 56 | 101 |
left: 0; |
| 57 | 102 |
} |
| 103 |
+ |
|
| 104 |
+.famous-angular-clipping-container, .famous-angular-container {
|
|
| 105 |
+ height: 100%; |
|
| 106 |
+ width: 100%; |
|
| 107 |
+ overflow: hidden; |
|
| 108 |
+} |
@@ -0,0 +1,14 @@ |
||
| 1 |
+<div class="layer-content fx-fade-normal fx-easing-quad fx-speed-500" ng-show="showView" ng-click="fadeOut()"> |
|
| 2 |
+ <fa-app id="app2"> |
|
| 3 |
+ <fa-modifier fa-size="[true, true]" fa-origin="[0,0]" fa-translate="[0, 0, 0]" fa-index="1"> |
|
| 4 |
+ <ui-view style="position: absolute; z-index: 2;"> |
|
| 5 |
+ <fa-modifier fa-size="[100, 100]" fa-translate="translation(t.get())" > |
|
| 6 |
+ <fa-surface fa-background-color="'#FA5C4F'" fa-color="'red'" > |
|
| 7 |
+ {{data.message}}
|
|
| 8 |
+ </fa-surface> |
|
| 9 |
+ </fa-modifier> |
|
| 10 |
+ </fa-modifier> |
|
| 11 |
+ </ui-view> |
|
| 12 |
+ </fa-modifier> |
|
| 13 |
+</fa-app> |
|
| 14 |
+</div> |
@@ -19,6 +19,18 @@ |
||
| 19 | 19 |
], |
| 20 | 20 |
"dependencies": {
|
| 21 | 21 |
"famous-angular": "~0.5.2", |
| 22 |
- "requirejs": "~2.1.17" |
|
| 22 |
+ "angular": "~1.3.8", |
|
| 23 |
+ "requirejs": "~2.1.17", |
|
| 24 |
+ "angular-animate": "^1.3.0", |
|
| 25 |
+ "angular-cookies": "^1.3.0", |
|
| 26 |
+ "angular-resource": "^1.3.0", |
|
| 27 |
+ "angular-route": "^1.3.0", |
|
| 28 |
+ "angular-sanitize": "^1.3.0", |
|
| 29 |
+ "angular-touch": "^1.3.0", |
|
| 30 |
+ "jQuery": "~2.1.4", |
|
| 31 |
+ "ngFx": "~1.1.0" |
|
| 32 |
+ }, |
|
| 33 |
+ "resolutions": {
|
|
| 34 |
+ "angular": "1.3.8" |
|
| 23 | 35 |
} |
| 24 | 36 |
} |
@@ -0,0 +1,86 @@ |
||
| 1 |
+0 info it worked if it ends with ok |
|
| 2 |
+1 verbose cli [ 'node', '/usr/local/bin/npm', 'i', 'ngFx', '--save' ] |
|
| 3 |
+2 info using npm@2.1.11 |
|
| 4 |
+3 info using node@v0.10.33 |
|
| 5 |
+4 verbose node symlink /usr/local/bin/node |
|
| 6 |
+5 warn package.json famous-angular@0.1.0 No description |
|
| 7 |
+6 warn package.json famous-angular@0.1.0 No repository field. |
|
| 8 |
+7 warn package.json famous-angular@0.1.0 No README data |
|
| 9 |
+8 silly cache add args [ 'ngFx', null ] |
|
| 10 |
+9 verbose cache add spec ngFx |
|
| 11 |
+10 silly cache add parsed spec { raw: 'ngFx',
|
|
| 12 |
+10 silly cache add scope: null, |
|
| 13 |
+10 silly cache add name: 'ngFx', |
|
| 14 |
+10 silly cache add rawSpec: '', |
|
| 15 |
+10 silly cache add spec: '*', |
|
| 16 |
+10 silly cache add type: 'range' } |
|
| 17 |
+11 verbose addNamed ngFx@* |
|
| 18 |
+12 silly addNamed semver.valid null |
|
| 19 |
+13 silly addNamed semver.validRange * |
|
| 20 |
+14 silly addNameRange { name: 'ngFx', range: '*', hasData: false }
|
|
| 21 |
+15 silly mapToRegistry name ngFx |
|
| 22 |
+16 silly mapToRegistry using default registry |
|
| 23 |
+17 silly mapToRegistry registry https://registry.npmjs.org/ |
|
| 24 |
+18 silly mapToRegistry uri https://registry.npmjs.org/ngFx |
|
| 25 |
+19 verbose addNameRange registry:https://registry.npmjs.org/ngFx not in flight; fetching |
|
| 26 |
+20 verbose request uri https://registry.npmjs.org/ngFx |
|
| 27 |
+21 verbose request no auth needed |
|
| 28 |
+22 info attempt registry request try #1 at 02:32:43 |
|
| 29 |
+23 verbose request id 0862c01a676044ee |
|
| 30 |
+24 http request GET https://registry.npmjs.org/ngFx |
|
| 31 |
+25 http 404 https://registry.npmjs.org/ngFx |
|
| 32 |
+26 verbose headers { server: 'CouchDB/1.5.0 (Erlang OTP/R16B03)',
|
|
| 33 |
+26 verbose headers 'content-type': 'application/json', |
|
| 34 |
+26 verbose headers 'cache-control': 'max-age=0', |
|
| 35 |
+26 verbose headers 'content-length': '51', |
|
| 36 |
+26 verbose headers 'accept-ranges': 'bytes', |
|
| 37 |
+26 verbose headers date: 'Thu, 28 May 2015 05:32:45 GMT', |
|
| 38 |
+26 verbose headers via: '1.1 varnish', |
|
| 39 |
+26 verbose headers age: '0', |
|
| 40 |
+26 verbose headers connection: 'keep-alive', |
|
| 41 |
+26 verbose headers 'x-served-by': 'cache-jfk1032-JFK', |
|
| 42 |
+26 verbose headers 'x-cache': 'MISS', |
|
| 43 |
+26 verbose headers 'x-cache-hits': '0', |
|
| 44 |
+26 verbose headers 'x-timer': 'S1432791164.980871,VS0,VE21' } |
|
| 45 |
+27 silly get cb [ 404, |
|
| 46 |
+27 silly get { server: 'CouchDB/1.5.0 (Erlang OTP/R16B03)',
|
|
| 47 |
+27 silly get 'content-type': 'application/json', |
|
| 48 |
+27 silly get 'cache-control': 'max-age=0', |
|
| 49 |
+27 silly get 'content-length': '51', |
|
| 50 |
+27 silly get 'accept-ranges': 'bytes', |
|
| 51 |
+27 silly get date: 'Thu, 28 May 2015 05:32:45 GMT', |
|
| 52 |
+27 silly get via: '1.1 varnish', |
|
| 53 |
+27 silly get age: '0', |
|
| 54 |
+27 silly get connection: 'keep-alive', |
|
| 55 |
+27 silly get 'x-served-by': 'cache-jfk1032-JFK', |
|
| 56 |
+27 silly get 'x-cache': 'MISS', |
|
| 57 |
+27 silly get 'x-cache-hits': '0', |
|
| 58 |
+27 silly get 'x-timer': 'S1432791164.980871,VS0,VE21' } ] |
|
| 59 |
+28 verbose stack Error: 404 Not Found: ngFx |
|
| 60 |
+28 verbose stack at CachingRegistryClient.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:239:14) |
|
| 61 |
+28 verbose stack at Request._callback (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:172:14) |
|
| 62 |
+28 verbose stack at Request.self.callback (/usr/local/lib/node_modules/npm/node_modules/request/request.js:372:22) |
|
| 63 |
+28 verbose stack at Request.emit (events.js:98:17) |
|
| 64 |
+28 verbose stack at Request.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/request/request.js:1317:14) |
|
| 65 |
+28 verbose stack at Request.emit (events.js:117:20) |
|
| 66 |
+28 verbose stack at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/request/request.js:1265:12) |
|
| 67 |
+28 verbose stack at IncomingMessage.emit (events.js:117:20) |
|
| 68 |
+28 verbose stack at _stream_readable.js:943:16 |
|
| 69 |
+28 verbose stack at process._tickCallback (node.js:419:13) |
|
| 70 |
+29 verbose statusCode 404 |
|
| 71 |
+30 verbose pkgid ngFx |
|
| 72 |
+31 verbose cwd /Users/v/dev/portfolio-go |
|
| 73 |
+32 error Darwin 13.4.0 |
|
| 74 |
+33 error argv "node" "/usr/local/bin/npm" "i" "ngFx" "--save" |
|
| 75 |
+34 error node v0.10.33 |
|
| 76 |
+35 error npm v2.1.11 |
|
| 77 |
+36 error code E404 |
|
| 78 |
+37 error 404 Not Found: ngFx |
|
| 79 |
+37 error 404 |
|
| 80 |
+37 error 404 'ngFx' is not in the npm registry. |
|
| 81 |
+37 error 404 You should bug the author to publish it (or use the name yourself!) |
|
| 82 |
+37 error 404 It was specified as a dependency of 'famous-angular' |
|
| 83 |
+37 error 404 |
|
| 84 |
+37 error 404 Note that you can also install from a |
|
| 85 |
+37 error 404 tarball, folder, http url, or git url. |
|
| 86 |
+38 verbose exit [ 1, true ] |